# Packages you need
library(tidyverse)

# Packages you may not have and can install
library(ggrepel)

Getting started

Above & Below

Basics. A good way to start is that you create the two separate plots and plotting side by side is the first step. Either of these will work.

If we want the second plot below, you can just use a divisor.

Grouping & Nesting

If we have multiple plots, we may want to group them a certain way.

This is what it would look like if we hadn’t nested. Operations take similar mathematical precedence.

We can take this further to use nesting to further enhance the plot.

Layout

Layouts provide more customization over the look.

We have additional options.

We can also use it with nesting.

Spacing

Add some space between plots. This is all it does at present.

Applying modifications to all plots

You may have some layouts or themes you’d like to apply to each plot. First we’ll start with the usual approach.

We could do the following, but it’s tedious.

Instead, we can just nest/group the plots and use * to apply the theme to all. This is much easier.

Using & will apply through all levels of nesting.

Annotation

Annotating applies only on the ‘top-level’ plot.

LS0tCnRpdGxlOiAiUGF0Y2h3b3JrIgpvdXRwdXQ6IAogIGh0bWxfbm90ZWJvb2s6IAogICAgaGlnaGxpZ2h0OiBweWdtZW50cwogICAgdGhlbWU6IHNhbmRzdG9uZQogICAgdG9jOiB5ZXMKZWRpdG9yX29wdGlvbnM6IAogIGNodW5rX291dHB1dF90eXBlOiBpbmxpbmUKLS0tCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KIyBvcHRpb25zIGZvciB0aGUga25pdHRlZCBodG1sIGRvY3VtZW50CmtuaXRyOjpvcHRzX2NodW5rJHNldCgKICBlY2hvPVQsIAogIG1lc3NhZ2UgPSBGLCAKICB3YXJuaW5nID0gRiwKICBjb21tZW50ID0gTkEsCiAgUi5vcHRpb25zPWxpc3Qod2lkdGg9MTIwKSwgCiAgY2FjaGUucmVidWlsZD1GLCAKICBjYWNoZT1ULAogIGZpZy5hbGlnbj0nY2VudGVyJywgCiAgZmlnLmFzcCA9IC43LAogIGRldiA9ICdzdmcnLCAKICBkZXYuYXJncz1saXN0KGJnID0gJ3RyYW5zcGFyZW50JykKKQpgYGAKCmBgYHtyIHBhY2thZ2VzfQojIFBhY2thZ2VzIHlvdSBuZWVkCmxpYnJhcnkodGlkeXZlcnNlKTsgbGlicmFyeShwYXRjaHdvcmspCgojIFBhY2thZ2VzIHlvdSBtYXkgbm90IGhhdmUgYW5kIGNhbiBpbnN0YWxsCmxpYnJhcnkoZ2dyZXBlbCkKYGBgCgoKIyMgR2V0dGluZyBzdGFydGVkCgojIyMgSW5zdGFsbGF0aW9uCgpgUGF0Y2h3b3JrYCBpcyBub3QgeWV0IGF2YWlsYWJsZSBvbiBDUkFOLiBZb3UnbGwgbmVlZCB0byBpbnN0YWxsIGl0IGFzIGZvbGxvd3MuCgpgYGB7ciBpbnN0YWxsfQojIGluc3RhbGwucGFja2FnZXMoImRldnRvb2xzIikKIyBkZXZ0b29sczo6aW5zdGFsbF9naXRodWIoInRob21hc3A4NS9wYXRjaHdvcmsiKQpgYGAKCgoKCmBgYHtyIGJhc2ljX3Bsb3RzfQpsb2FkKCdkYXRhL3N0YXJ3YXJzX2RmLlJEYXRhJykgICMgbG9hZCBzdGFyd2FycyBkYXRhIGZyYW1lcwoKYmFyID0gcGVvcGxlX2RmICU+JSAKICBtdXRhdGUoaG9tZXdvcmxkID0gZmN0X2x1bXAoaG9tZXdvcmxkLCBuID0gNCkpICU+JSAKICBkcm9wX25hKGhvbWV3b3JsZCkgJT4lIAogIGdncGxvdCgpICsgCiAgZ2VvbV9iYXIoYWVzKHggPSBob21ld29ybGQsIGZpbGwgPSBob21ld29ybGQpLCBzaG93LmxlZ2VuZCA9IEYpCgpzbW9vdGggPSBwZW9wbGVfZGYgJT4lIAogIGZpbHRlcighaXMubmEoZ2VuZGVyKSAmICFncmVwbChuYW1lLCBwYXR0ZXJuID0gJ0phYmJhJykpICU+JSAKICBnZ3Bsb3QoYWVzKHg9bWFzcywgeT1oZWlnaHQpKSArIAogIGdlb21fcG9pbnQoKSArIAogIGdlb21fc21vb3RoKCkKCnNjYXR0ZXIgPSB2ZWhpY2xlc19kZiAlPiUgCiAgZ2dwbG90KGFlcyh4PWxlbmd0aCwgeT1jb3N0X2luX2NyZWRpdHMpKSArIAogIGdlb21fcG9pbnQoc2l6ZSA9IDEwLCBjb2xvciA9ICcjZmY1NTAwJykgKwogIGdlb21fdGV4dF9yZXBlbChhZXMobGFiZWwgPSBuYW1lKSwgc2l6ZT02LCBjb2xvciA9ICdncmF5NTAnKSAgIyByZXF1aXJlcyBnZ3JlcGVsCgpib3ggPSBwZW9wbGVfZGYgJT4lIAogIG11dGF0ZShzcGVjaWVzID0gZmN0X2x1bXAoc3BlY2llcywgbiA9IDIpKSAlPiUgCiAgZHJvcF9uYShzcGVjaWVzKSAlPiUgCiAgZ2dwbG90KGFlcyh4PSBzcGVjaWVzLCB5ID0gbWFzcykpICsKICBnZW9tX2JveHBsb3QoKQpgYGAKCiMjIEFib3ZlICYgQmVsb3cKCkJhc2ljcy4gIEEgZ29vZCB3YXkgdG8gc3RhcnQgaXMgdGhhdCB5b3UgY3JlYXRlIHRoZSB0d28gc2VwYXJhdGUgcGxvdHMgYW5kIHBsb3R0aW5nIHNpZGUgYnkgc2lkZSBpcyB0aGUgZmlyc3Qgc3RlcC4gIEVpdGhlciBvZiB0aGVzZSB3aWxsIHdvcmsuCgoKYGBge3Igc2lkZV9ieV9zaWRlfQpiYXIgKyBzbW9vdGggICMgbm90ZSB0aGlzIGNvdWxkIGJlIHRoZSBhY3R1YWwgdW5kZXJseWluZyBjb2RlIG9mIHRoZSBwbG90cwpgYGAKCmBgYHtyIHNpZGVfYnlfc2lkZTJ9CmJhciB8IGJveApgYGAKCgoKSWYgd2Ugd2FudCB0aGUgc2Vjb25kIHBsb3QgYmVsb3csIHlvdSBjYW4ganVzdCB1c2UgYSBkaXZpc29yLgoKYGBge3IgdG9wX2JvdHRvbX0KYmFyIC8gc21vb3RoCmBgYAoKCiMjIEdyb3VwaW5nICYgTmVzdGluZwoKSWYgd2UgaGF2ZSBtdWx0aXBsZSBwbG90cywgd2UgbWF5IHdhbnQgdG8gZ3JvdXAgdGhlbSBhIGNlcnRhaW4gd2F5LgoKYGBge3IgZ3JvdXBpbmd9CihiYXIgKyBzbW9vdGgpIC8gYm94CmBgYAoKVGhpcyBpcyB3aGF0IGl0IHdvdWxkIGxvb2sgbGlrZSBpZiB3ZSBoYWRuJ3QgbmVzdGVkLiBPcGVyYXRpb25zIHRha2Ugc2ltaWxhcgptYXRoZW1hdGljYWwgcHJlY2VkZW5jZS4KCmBgYHtyIGdyb3VwaW5nMn0KYmFyICsgc21vb3RoIC8gYm94CmBgYAoKV2UgY2FuIHRha2UgdGhpcyBmdXJ0aGVyIHRvIHVzZSAqbmVzdGluZyogdG8gZnVydGhlciBlbmhhbmNlIHRoZSBwbG90LgoKYGBge3IgbmVzdGluZ30KYmFyIC8gewogIGJveCArIHsKICAgIHNjYXR0ZXIgLyAKICAgICAgc21vb3RoCiAgICB9CiAgfQpgYGAKCiMjIExheW91dAoKTGF5b3V0cyBwcm92aWRlIG1vcmUgY3VzdG9taXphdGlvbiBvdmVyIHRoZSBsb29rLgoKYGBge3IgbGF5b3V0MX0KYm94ICsgc21vb3RoICsgYmFyICsgc2NhdHRlciArCiAgcGxvdF9sYXlvdXQobmNvbCA9IDIpCmBgYAoKV2UgaGF2ZSBhZGRpdGlvbmFsIG9wdGlvbnMuCgpgYGB7ciBsYXlvdXQyfQpib3ggKyAKICBzbW9vdGggKyAKICBiYXIgKyAKICBzY2F0dGVyICsKICBwbG90X2xheW91dCgKICAgIG5jb2wgPSAyLCAgICAgICAgICAgICMgMiBjb2x1bW5zCiAgICBieXJvdyA9IFQgICAgICAgICAgICAjIGVudGVyIHBsb3RzIGJ5IHJvdwogICkKYGBgCgoKCldlIGNhbiBhbHNvIHVzZSBpdCB3aXRoIG5lc3RpbmcuCgpgYGB7ciBsYXlvdXQzfQpiYXIgKyB7CiAgYm94ICsgCiAgICBzY2F0dGVyICsgCiAgICBwbG90X2xheW91dChuY29sID0gMSkKICB9ICsgCiAgc21vb3RoCmBgYAoKIyMjIFNpemluZwoKV2UgY2FuIGFsdGVyIHJlbGF0aXZlIHNpemVzIG9mIHBsb3RzLgoKYGBge3Igc2l6aW5nfQpib3ggKyAKICBzbW9vdGggKyAKICBiYXIgKyAKICBzY2F0dGVyICsKICBwbG90X2xheW91dCgKICAgIG5jb2wgPSAyLCAgICAgICAgICAgICMgMiBjb2x1bW5zCiAgICBieXJvdyA9IFQsICAgICAgICAgICAjIGVudGVyIHBsb3RzIGJ5IHJvdwogICAgd2lkdGhzID0gYygxLDIpLCAgICAgIyByZWxhdGl2ZSBjb2x1bW4gd2lkdGhzCiAgICBoZWlnaHRzID0gYygxLDEuNSkgICAjIHJlbGF0aXZlIHJvdyBoZWlnaHRzCiAgKQpgYGAKCiMjIyBTcGFjaW5nCgpBZGQgc29tZSBzcGFjZSBiZXR3ZWVuIHBsb3RzLiBUaGlzIGlzIGFsbCBpdCBkb2VzIGF0IHByZXNlbnQuCgpgYGB7ciBzcGFjaW5nfQpib3ggKyAKICBwbG90X3NwYWNlcigpICsKICBzbW9vdGggCmBgYAojIyMgQXBwbHlpbmcgbW9kaWZpY2F0aW9ucyB0byBhbGwgcGxvdHMKCllvdSBtYXkgaGF2ZSBzb21lIGxheW91dHMgb3IgdGhlbWVzIHlvdSdkIGxpa2UgdG8gYXBwbHkgdG8gZWFjaCBwbG90LiAgRmlyc3Qgd2UnbGwgc3RhcnQgd2l0aCB0aGUgdXN1YWwgYXBwcm9hY2guCgoKYGBge3IgYXBwbHlfdGhlbWUxfQpib3ggKyBzbW9vdGggKyBiYXIgKyB0aGVtZV9idygpCmBgYAoKV2UgY291bGQgZG8gdGhlIGZvbGxvd2luZywgYnV0IGl0J3MgdGVkaW91cy4KCmBgYHtyIGFwcGx5X3RoZW1lMn0KYm94ICsgdGhlbWVfYncoKSArIHNtb290aCArIHRoZW1lX2J3KCkgKyBiYXIgKyB0aGVtZV9idygpCmBgYAoKSW5zdGVhZCwgd2UgY2FuIGp1c3QgbmVzdC9ncm91cCB0aGUgcGxvdHMgYW5kIHVzZSBgKmAgdG8gYXBwbHkgdGhlIHRoZW1lIHRvIGFsbC4gVGhpcyBpcyBtdWNoIGVhc2llci4gIAoKYGBge3IgYXBwbHlfdGhlbWUzfQooYm94ICsgc21vb3RoICsgYmFyKSAqIHRoZW1lX2J3KCkKYGBgCgpVc2luZyBgJmAgd2lsbCBhcHBseSB0aHJvdWdoIGFsbCBsZXZlbHMgb2YgbmVzdGluZy4KCmBgYHtyIGFwcGx5X3RoZW1lNH0KYm94IC8gewogIHNtb290aCArIAogICAgYmFyCiAgfSAqIHRoZW1lX2J3KCkKCgpib3ggLyB7CiAgc21vb3RoICsgCiAgICBiYXIKICB9ICYgdGhlbWVfYncoKQpgYGAKCiMjIEFubm90YXRpb24KCkFubm90YXRpbmcgYXBwbGllcyBvbmx5IG9uIHRoZSAndG9wLWxldmVsJyBwbG90LgoKYGBge3IgYW5ub3RhdGlvbn0KIyBwbG90IGFubm90YXRpb24gbXVzdCBiZSBhcHBsaWVkIHRvIHRoZSB3aG9sZSBzZXQgb2YgcGxvdHMuIEkgbmVzdGVkIGV2ZXJ5dGhpbmcKIyBzbyB0aGF0IEkgY291bGQgYWxzbyB1c2UgdGhlIGAmYCBvcGVyYXRvciBmb3IgYSBjb21tb24gdGhlbWUuCntib3ggLyB7CiAgc21vb3RoICsgCiAgICBiYXIKICB9ICAgJiAKICB0aGVtZV9idygpCiAgfSArIAogIHBsb3RfYW5ub3RhdGlvbih0aXRsZSA9ICdTdGFyIFdhcnMgUGxvdHMnLCAKICAgICAgICAgICAgICAgICAgc3VidGl0bGUgPSAnU2hlbmFuaWdhbnMnLCAKICAgICAgICAgICAgICAgICAgdGhlbWUgPSB0aGVtZSh0aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplPSAyNCkpKSAKYGBgCgo=